import { request } from '@/utils/request'
import type {
  KnowledgePage,
  KnowledgeParams,
  PageParams,
  DoctorPage,
  Image,
  TopDep
} from '@/types/consult'
// 获取文章列表
// TS 校验的位置   函数的形参     声明的变量
// axios 的返回值

// 先明确数据是什么类型 才能校验
// params 就是请求参数的数据
export const getKnowledgePage = (params: KnowledgeParams) => {
  // request 返回值 data 的数据类型
  // KnowledgePage 定义的数据格式 就是后端返回的data的格式
  return request<KnowledgePage>('/patient/home/knowledge', 'GET', params)
}

// 获取关注列表
export const getDoctorPage = (params: PageParams) => {
  return request<DoctorPage>('/home/page/doc', 'GET', params)
}

// 关注医生

export const followOrUnfollow = (id: string, type: string = 'doc') => {
  return request('/like', 'POST', { id, type })
}

// 找医生--查询所有科室-层级

// 这里注意TopDep 是一个对象  返回值是一个数组
export const getAllDep = () => request<TopDep[]>('/dep/all')

// File 是JS提供的   就类似 于 input  HTMLInputElement
export const uploadImage = (file: File) => {
  // Body 参数 (application/form-data)
  const fd = new FormData()
  // 第一个参数  接口文档要求的字段  第二个 文件信息
  fd.append('file', file)

  return request<Image>('/upload', 'POST', fd)
}
